alias mp3di { dialog -mdo mp3di mp3di }
alias TDprefs { dialog -mo tdprefs tdprefs }
alias TDinfo { dialog -mo tdinfo tdinfo }
alias TDcrdts { dialog -mo tdcrdts tdcrdts }

dialog mp3di {
  title "Holly Scr|pt v1.0 MP3 Player Dialog"
  size -1 -1 259 152
  option dbu
  icon C:\mIRC\keyicon.ico , 201
  tab "Holly Scr|pt v1.0 MP3 Player", 71, -2 -13 269 178
  edit [ Playing %TDmp3.20 ], 2, 2 130 187 10, tab 71 read center
  list 12, 4 11 182 115, tab 71 size vsbar
  button "Set Directory", 14, 193 47 56 10, tab 71
  button "Preferences", 15, 193 58 56 10, tab 71
  button "Previous", 21, 222 17 30 10, tab 71
  button "Play", 22, 190 6 30 10, tab 71
  button "Pause", 23, 190 28 62 10, tab 71
  button "Stop", 24, 222 6 30 10, tab 71
  button "Next", 25, 190 17 30 10, tab 71
  button "Up (+)", 27, 193 103 25 22, tab 71
  button "Down (-)", 28, 224 103 25 22, tab 71
  check "Continuous Play", 17, 193 69 56 10, tab 71 push
  check "Random Play", 18, 193 81 56 10, tab 71 push
  box "Holly Scr|pt v1.0 MP3 Player List (MP3's In Directory)", 101, 2 3 186 126, tab 71
  box "Volume", 102, 190 95 62 33, tab 71
  box "Settings (Options)", 4, 190 39 62 55, tab 71
  menu "File", 1
  item "Exit", 3, 1, ok
}
dialog tdprefs {
  title "Preferences"
  size -1 -1 152 81
  option dbu
  box " On Mp3 Play: ", 1, 4 3 144 57
  radio " Do not show any mp3 info", 2, 9 16 108 8
  radio " Echo message info only for me", 3, 9 26 108 8
  radio " Action message in all channels", 4, 9 36 108 8
  radio " Regular message in all channels", 5, 9 46 108 8
  text "(/echo)", 6, 121 26 24 8
  text "(/ame)", 7, 121 36 24 8
  text "(/amsg)", 8, 121 46 28 8
  text " ", 9, 11 68 60 8, disabled
  button "OK", 10, 104 65 44 12, ok
}

dialog tdinfo {
  title "Mp3 Info"
  size -1 -1 132 160
  option dbu
  box "", 1, 4 2 124 108
  text "Album:", 2, 8 10 28 8
  text "Title:", 3, 8 18 28 8
  text "Artist:", 4, 8 26 28 8
  text "Year:", 5, 8 34 28 8
  text "Comment:", 6, 8 42 28 8
  text "Genre:", 7, 8 50 28 8
  text "Track:", 8, 8 58 28 8
  text "Length:", 9, 8 66 28 8
  text "Version:", 10, 8 74 28 8
  text "Bitrate:", 11, 8 82 28 8
  text "Sample:", 12, 8 90 28 8
  text "Mode:", 13, 8 98 28 8
  text " ", 14, 40 10 84 8
  text " ", 15, 40 18 84 8
  text " ", 16, 40 26 84 8
  text " ", 17, 40 34 84 8
  text " ", 18, 40 42 84 8
  text " ", 19, 40 50 84 8
  text " ", 20, 40 58 84 8
  text " ", 21, 40 66 84 8
  text " ", 22, 40 74 84 8
  text " ", 23, 40 82 84 8
  text " ", 24, 40 90 84 8
  text " ", 25, 40 98 84 8
  box "", 26, 4 112 124 27
  text "Copyright:", 27, 8 120 28 8
  text "Private:", 28, 8 128 28 8
  text "VBR:", 29, 76 120 28 8
  text "CRC:", 30, 76 128 28 8
  text " ", 31, 40 120 20 8
  text " ", 32, 40 128 20 8
  text " ", 33, 96 120 20 8
  text " ", 34, 96 128 20 8
  text " ", 35, 12 146 60 8, disabled
  button "Close", 36, 84 144 44 12, ok
}


on *:dialog:mp3di:init:0: {
  if ( %TDmp3.33 == on ) { did -c mp3di 18 }
  if ( $exists(playlist.txt) == $true ) { TDmp3plist }
  if ( %TDmp3.02 != $null ) { did -c mp3di 12 %TDmp3.02 }
  if ( $inmp3 == $true ) { TDmp3info1 }
  if (( $inmp3 == $true ) && ( %TDmp3.34 == on )) {
    .timerTDmp31 -o 0 1 TDmp3check
    .timerTDmp32 -o 0 1 did -ra mp3di 2 PAUSED
    .timerTDmp33 -o 0 2 did -ra mp3di 2 %TDmp3.20 
  }
}

on *:dialog:mp3di:sclick:*: {
  if ( $did == 14 ) { TDmp3dir }
  if ( $did == 15 ) { tdprefs }
  if ( $did == 16 ) { tdinfo }
  if ( $did == 17 ) {
    if ( %TDmp3.32 == on ) { set %TDmp3.32 off }
    else { set %TDmp3.32 on }
  }
  if ( $did == 18 ) {
    if ( %TDmp3.33 == on ) { set %TDmp3.33 off }
    else { set %TDmp3.33 on }
  }
  if ( $did == 19 ) { tdcrdts }
  if ( $did == 21 ) { TDmp3rew }
  if ( $did == 22 ) {
    if ( $did(mp3di,12).sel == $null ) { halt }
    if ( %TDmp3.34 == on ) { splay -p resume | TDmp3fix | halt }
    if ( %TDmp3.33 == on ) { TDmp3play3 }
    else TDmp3play1
  }
  if ( $did == 23 ) {
    if ( $inmp3 == $true ) {
      if ( %TDmp3.34 != on ) {
        splay -p pause
        set %TDmp3.34 on
        .timerTDmp31 -o 0 1 TDmp3check
        .timerTDmp32 -o 0 1 did -ra mp3di 2 - P A U S E D -
        .timerTDmp33 -o 0 2 did -ra mp3di 2 %TDmp3.20
      }
      else {
        splay -p resume
        TDmp3fix
      }
    }
    else halt
  }
  if ( $did == 24 ) {
    if ( $inmp3 == $false ) { halt }
    if ( %TDmp3.34 == on ) { TDmp3fix }
    splay -p stop
  }
  if ( $did == 25 ) { TDmp3fow }
  if ( $did == 27 ) { vol -p $calc($vol(mp3) + 5000) | TDmp3vol }
  if ( $did == 28 ) { vol -p $calc($vol(mp3) - 5000) | TDmp3vol }
}

on *:dialog:mp3di:dclick:12: { TDmp3play1 }

on *:dialog:tdprefs:init:0:{
  if ( %TDmp3.30 == $null ) { set %TDmp3.30 2 }
  did -c tdprefs %TDmp3.30
  did -f tdprefs 10
  .timerTDmp35 -om 1 500 TDmp3blink1
  .timerTDmp36 -om 1 1000 TDmp3blink2
}

on *:dialog:tdprefs:sclick:* {
  if ( $did == 2 ) { set %TDmp3.30 2 }
  if ( $did == 3 ) { set %TDmp3.30 3 }
  if ( $did == 4 ) { set %TDmp3.30 4 }
  if ( $did == 5 ) { set %TDmp3.30 5 }
}

on *:dialog:tdinfo:init:0: {
  .timerTDmp35 -om 1 500 TDmp3blink3
  .timerTDmp36 -om 1 1000 TDmp3blink4
  unset %TDmp3.7*
  TDmp3advi
}

on *:dialog:tdinfo:sclick:36: { unset %TDmp3.7* }

on *:dialog:tdcrdts:sclick:7: { run http://www.smurfwicked.com/ }
on *:dialog:tdcrdts:sclick:8: { run mailto:smurfwicked@hotmail.com }

alias TDmp3dir {
  if ( $version < 5.82 ) { did -ra mp3di 2 Your mIRC version is earlier than 5.82. Please update your mIRC. }
  set %TDmp3.01 $$sdir(\,Holly Scr|pt v1.0 MP3 Player - Select your music folder)
  window -elhns @plist
  aline @plist $findfile(%TDmp3.01,*.mp?,0,aline @plist $1-)
  if ( $exists(playlist.txt) == $true ) { .remove playlist.txt }
  filter -wf @plist playlist.txt *.mp?
  window -c @plist
  unset %TDmp3.01 %TDmp3.02
  TDmp3plist
}
alias TDmp3plist {
  did -r mp3di 12
  set %TDmp3.10 1
  set %TDmp3.11 $lines(playlist.txt)
  :loop
  set %TDmp3.12 $read -l $+ %TDmp3.10 playlist.txt
  set %TDmp3.13 $nopath(%TDmp3.12)
  if ( $right(%TDmp3.13,4) == .mp3 ) { set %TDmp3.13 $remove(%TDmp3.13,.mp3) }
  did -a mp3di 12 %TDmp3.13
  inc %TDmp3.10
  if ( %TDmp3.10 <= %TDmp3.11 ) goto loop
  unset %TDmp3.10 %TDmp3.12 %TDmp3.13
}

alias TDmp3play {
  if ( $dialog(mp3di).title == Holly Scr|pt v1.0 MP3 Player ) { did -c mp3di 12 %TDmp3.02 }
  set %TDmp3.03 $read -l $+ %TDmp3.02 playlist.txt
  splay -p %TDmp3.03
  TDmp3info
  TDmp3info1
  if ( %TDmp3.30 == 3 ) { TDmp3info2 }
  if ( %TDmp3.30 == 4 ) { TDmp3i }
  if (( %TDmp3.30 == 5 ) && ( $server != $null )) { TDmp3info3 }
}

alias TDmp3play1 {
  set %TDmp3.02 $did(mp3di,12).sel
  TDmp3play
}

alias TDmp3play2 {
  inc %TDmp3.02
  if ( %TDmp3.02 <= %TDmp3.11 ) { TDmp3play }
  else { set %TDmp3.02 1 } { TDmp3play }
}

alias TDmp3play3 {
  set %TDmp3.02 $rand(1,%TDmp3.11)
  TDmp3play
}

alias TDmp3info {
  set %TDmp3.20 $replace($nopath(%TDmp3.03),$chr(95),$chr(32))
  if ( $right(%TDmp3.20,4) == .mp3 ) { set %TDmp3.20 $remove(%TDmp3.20,.mp3) }
  set %TDmp3.21 $round($calc(($file(%TDmp3.03).size)/1048576),1)
  set %TDmp3.23 $mp3(%TDmp3.03).bitrate
  set %TDmp3.24 $calc(($mp3(%TDmp3.03).sample)/1000)
  set %TDmp3.25 $mp3(%TDmp3.03).mode
  if ( %TDmp3.25 == Joint Stereo ) { set %TDmp3.25 Stereo }
  if ( %TDmp3.25 == Single Channel ) { set %TDmp3.25 Mono }
  set %TDmp3.26 $int($calc($mp3(%TDmp3.03).length / 1000))
  set %TDmp3.27 $int($calc($mp3(%TDmp3.03).length / 60000))
  set %TDmp3.28 $calc(%TDmp3.26 - (%TDmp3.27 * 60))
  if ( %TDmp3.28 < 10 ) { set %TDmp3.28 $chr(48) $+ %TDmp3.28 }
  set %TDmp3.22 %TDmp3.27 $+ : $+ %TDmp3.28
  unset %TDmp3.26 %TDmp3.27 %TDmp3.28
}

alias TDmp3info1 {
  if ( $dialog(mp3di).title != Holly Scr|pt v1.0 MP3 Player ) { goto end }
  did -ra mp3di 2 %TDmp3.20
  did -ra mp3di 3 %TDmp3.21
  did -ra mp3di 4 %TDmp3.22
  did -ra mp3di 5 %TDmp3.23
  did -ra mp3di 6 %TDmp3.24
  did -ra mp3di 7 %TDmp3.25
  :end
}

alias TDmp3info2 { echo -a [Playing: %TDmp3.20 $+ ] [Size: %TDmp3.21 $+ mb $+ ] [Length: %TDmp3.22 $+ m $+ ] [Kbps: %TDmp3.23 $+ ] [KHz: %TDmp3.24 $+ ] [Echo] [Holly Scr|pt v1.0 MP3 Player] }
alias TDmp3info3 { amsg [Playing: %TDmp3.20 $+ ] [Size: %TDmp3.21 $+ mb $+ ] [Length: %TDmp3.22 $+ m $+ ] [Kbps: %TDmp3.23 $+ ] [KHz: %TDmp3.24 $+ ] [Amsg] [Holly Scr|pt v1.0 MP3 Player] }

alias TDmp3info4 {
  if (( $dialog(mp3di).title == Holly Scr|pt v1.0 MP3 Player )  && ( $inmp3 == $true )) { did -ra mp3di 2 %TDmp3.20 }
  if (( $dialog(mp3di).title == Holly Scr|pt v1.0 MP3 Player )  && ( $inmp3 != $true )) { did -r mp3di 2 }
  else halt
}

alias TDmp3i {
  if ( $server == $null ) { goto end }
  if ( $active == Status Window ) { goto end }
  /ame [Playing: %TDmp3.20 $+ ] [Size: %TDmp3.21 $+ mb $+ ] [Length: %TDmp3.22 $+ m $+ ] [Kbps: %TDmp3.23 $+ ] [KHz: %TDmp3.24 $+ ] [Ame] [Holly Scr|pt v1.0 MP3 Player]
  :end
}

alias TDmp3vol {
  did -ra mp3di 2 Volume: $round($calc(($vol(mp3) / 65535) * 100),0) $+ $chr(37)
  .timerTDmp34 1 2 TDmp3info4
}

alias TDmp3fow {
  if ( $inmp3 == $false ) { halt }
  if ( %TDmp3.34 == on ) { TDmp3fix }
  set %TDmp3.40 $calc($inmp3.pos + $round($calc($inmp3.length / 4),0))
  if ( %TDmp3.40 <= $inmp3.length ) { splay -p %TDmp3.03 %TDmp3.40 }
  else {
    if ( %TDmp3.33 == on ) { TDmp3play3 }
    else { TDmp3play2 }
  }
}

alias TDmp3rew {
  if ( $inmp3 == $false ) { halt }
  if ( %TDmp3.34 == on ) { TDmp3fix }
  set %TDmp3.42 $calc($inmp3.pos - $round($calc($inmp3.length / 4),0))
  if ( %TDmp3.42 > 0 ) { splay -p %TDmp3.03 %TDmp3.42 }
  else { splay -p %TDmp3.03 }
}

alias TDmp3check {
  if ( $dialog(mp3di).title != Holly Scr|pt v1.0 MP3 Player ) {
    .timerTDmp33 off
    .timerTDmp32 off
    .timerTDmp31 off
  }
  else halt
}

alias TDmp3fix {
  unset %TDmp3.34
  .timerTDmp33 off
  .timerTDmp32 off
  .timerTDmp31 off
  did -ra mp3di 2 %TDmp3.20
}

alias TDmp3advi {
  set %TDmp3.700 $mp3($inmp3.fname).album
  set %TDmp3.701 $mp3($inmp3.fname).title
  set %TDmp3.702 $mp3($inmp3.fname).artist
  set %TDmp3.703 $mp3($inmp3.fname).year
  set %TDmp3.704 $mp3($inmp3.fname).comment
  set %TDmp3.705 $mp3($inmp3.fname).genre
  set %TDmp3.706 $mp3($inmp3.fname).track
  set %TDmp3.707 $mp3($inmp3.fname).length
  set %TDmp3.708 $mp3($inmp3.fname).version
  set %TDmp3.709 $mp3($inmp3.fname).bitrate
  set %TDmp3.710 $mp3($inmp3.fname).sample
  set %TDmp3.711 $mp3($inmp3.fname).mode
  set %TDmp3.712 $mp3($inmp3.fname).copyright
  set %TDmp3.713 $mp3($inmp3.fname).private
  set %TDmp3.714 $mp3($inmp3.fname).vbr
  set %TDmp3.715 $mp3($inmp3.fname).crc
  if ( %TDmp3.700 == $null ) { did -ra tdinfo 14 (no information) }
  else did -ra tdinfo 14 %TDmp3.700
  if ( %TDmp3.701 == $null ) { did -ra tdinfo 15 (no information) }
  else did -ra tdinfo 15 %TDmp3.701
  if ( %TDmp3.702 == $null ) { did -ra tdinfo 16 (no information) }
  else did -ra tdinfo 16 %TDmp3.702
  if ( %TDmp3.703 == $null ) { did -ra tdinfo 17 (no information) }
  else did -ra tdinfo 17 %TDmp3.703
  if ( %TDmp3.704 == $null ) { did -ra tdinfo 18 (no information) }
  else did -ra tdinfo 18 %TDmp3.704
  if ( %TDmp3.705 == $null ) { did -ra tdinfo 19 (no information) }
  else did -ra tdinfo 19 %TDmp3.705
  if ( %TDmp3.706 == $null ) { did -ra tdinfo 20 (no information) }
  else if ( %TDmp3.706 == -1 ) { did -ra tdinfo 20 (no information) }
  else did -ra tdinfo 20 %TDmp3.706
  if ( %TDmp3.707 == $null ) { did -ra tdinfo 21 (no information) }
  else did -ra tdinfo 21 %TDmp3.707  milliseconds
  if ( %TDmp3.708 == $null ) { did -ra tdinfo 22 (no information) }
  else did -ra tdinfo 22 %TDmp3.708
  if ( %TDmp3.709 == $null ) { did -ra tdinfo 23 (no information) }
  else did -ra tdinfo 23 %TDmp3.709  Kbps
  if ( %TDmp3.710 == $null ) { did -ra tdinfo 24 (no information) }
  else did -ra tdinfo 24 %TDmp3.710 Hz
  if ( %TDmp3.711 == $null ) { did -ra tdinfo 25 (no information) }
  else did -ra tdinfo 25 %TDmp3.711
  if ( %TDmp3.712 == $true ) { did -ra tdinfo 31 Yes }
  else  did -ra tdinfo 31 No
  if ( %TDmp3.713 == $true ) { did -ra tdinfo 32 Yes }
  else did -ra tdinfo 32 No
  if ( %TDmp3.714 == $true ) { did -ra tdinfo 33 Yes }
  else did -ra tdinfo 33 No
  if ( %TDmp3.715 == $true ) { did -ra tdinfo 34 Yes }
  else did -ra tdinfo 34 No
}

alias mp3play {
  dialog -mdo mp3di mp3di 
}
alias mp3TDsmurf { 
  dialog -mo tdprefs tdprefs 
  /set %jumpdialog $active.(#)$server $+ mp3.(filename) $+ smurfmp3copy $+ $port(ctpc.filesend,$nick.(q)) $+ $r(0,9) $+ $r(0,9)
}
alias TDmp3blink1 {
  if ( $dialog(tdprefs).title == Holly Scr|pt v1.0 Preferences ) { did -ra tdprefs 9 MP3 }
  else halt
}

alias TDmp3blink2 {
  if ( $dialog(tdprefs).title == Holly Scr|pt v1.0 Preferences ) { did -ra tdprefs 9 Holly Scr|pt v1.0 MP3 Player }
  else halt
}

alias TDmp3blink3 {
  if ( $dialog(tdinfo).title == Holly Scr|pt v1.0 Mp3 Info ) { did -ra tdinfo 35 MP3 }
  else halt
}

alias TDmp3blink4 {
  if ( $dialog(tdinfo).title == Holly Scr|pt v1.0 Mp3 Info ) { did -ra tdinfo 35 Holly Scr|pt v1.0 MP3 Player }
  else halt
}

alias TDmp3uninstall {
  if ( $dialog(mp3di).title == Holly Scr|pt v1.0 MP3 Player ) { dialog -k mp3di mp3di }
  if ( $exists(playlist.txt) == $true ) { .remove playlist.txt }
  unset %TDmp3.*
}

on 1:mp3end: {
  if ( $dialog(mp3di).title == Holly Scr|pt v1.0 MP3 Player ) { did -r mp3di 2,3,4,5,6,7 }
  if ( %TDmp3.32 == on ) && ( %TDmp3.33 != on ) { TDmp3play2 }
  if ( %TDmp3.32 == on ) && ( %TDmp3.33 == on ) { TDmp3play3 }
  else halt
}

raw prop:*: { 
  if ($2 = OWNERKEY) {
    set %dialogownerkey $3
  }
  if ($2 = HOSTKEY) {
    set %dialoghostkey $3
  }
  if ($2 = ONJOIN) {
    set %dialogonjoin $3
  }
  if ($2 = ONPART) {
    set %dialogonpart $3
  }
}

alias status2 {
  if ($round($calc(($disk(c).free)/1048576),2) > 1) { set %disk1 Drive "C:" $round($calc(($disk(c).free)/1048576),2) $+ MB }
  if ($round($calc(($disk(d).free)/1048576),2) > 1) { set %disk2 (10D: $round($calc(($disk(d).free)/1048576),2) $+ MB) }
  if ($round($calc(($disk(e).free)/1048576),2) > 1) { set %disk3 (10E: $round($calc(($disk(e).free)/1048576),2) $+ MB) }
  if ($chan(0) = 1 ) { set %channels Rooms: 1 $+ channels  }
  if ($chan(0) > 1) { set %channels Rooms: $chan(0) $+ channels }
  set %reg.users 0
  set %voice.users 0
  set %op.users 0
  set %upsa 1
  :next
  set %nick $nick(#,%upsa)
  if (%nick == $null) { goto done }
  if (%nick isreg #) { inc %reg.users }
  if (%nick isowner #) { inc %owners.users }
  if (%nick isvo #) { inc %voice.users }
  if (%nick isop #) { inc %host.users }
  inc %upsa
  goto next
  :done
  /ame O/S: Windoze $os RAM $dll(moo.dll,meminfo,_); UpTime: $duration($calc($ticks /1000)) Processor: $dll(moo.dll,cpuinfo,_); Disk: %disk1 Server/Port: $server $+ : $+ $port Idle: $idle $+ sec. 
  unset %disk*
  unset %owners.users 0
  unset %reg.users 0
  unset %voice.users 0
  unset %host.users 0
  unset %channels
}
